package org.brownflat.watergate.scm;


import org.brownflat.watergate.domain.Branch;
import org.brownflat.watergate.domain.CommitElement;

/**
 * <p>&copy Rupert Jones 2011</p>
 *
 * @author rup
 */
public interface RepositoryClient {
    Revisions getCompleteHistory(Branch branch);
    Revisions getCompleteHistory(Branch branch, long from);
    Revisions getCompleteHistory(String[] paths, Branch branch, long from);
    Revision getServerCopyRevision(Branch branch);
    Revision getFirstRevision(Branch branch);
    Revisions getRemainingRevisions(Branch branch, long from);
    Revision getDetailedRevision(Branch branch, long revision);
    DiffOutput diff(CommitElement commitElement);
}
